{
  // 类型别名支持基本数据类型和引用数据类型
  type Type = number
  type Type2 = {}

  // 接口只支持引用数据类型
  interface Type3 {}
}

{
  // 类型别名通过交叉类型实现复用
  type Type = { name: string }
  type Type2 = { age: number }
  type Type3 = Type & Type2

  // 接口通过继承实现复用
  interface Type4 {
    name: string
  }
  interface Type5 extends Type4 {
    age: number
  }
}

{
  // 类型别名不能重复定义（不能添加新成员）
  type Type = { name: string }
  // type Type = { age: number } // 标识符“Type”重复。

  // 接口可以重复定义，内容会合并（可以添加新成员）
  interface Type2 {
    name: string
  }
  interface Type2 {
    age: number
  }
  let type2: Type2 = {
    name: '张智琦',
    age: 18
  }
}

export {}
